#pragma once

#include <iostream>
#include <functional>

typedef std::function<int (int,int)> func_t;

class Task
{

public:
    Task(){}
    Task(int x, int y, func_t func)
        :x_(x)
        ,y_(y)
        ,func_(func)
    {}
    int operator ()()
    {
        return func_(x_, y_);
    }
public:
    int x_;
    int y_;
    func_t func_;
};
